﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NakedObjects;
using System.ComponentModel;

namespace RTC.Modelo.Entidades
{
    [DisplayName("Estudio")]
    public class EstudioExterno: Entidad
    {
        #region Atributos

        [Hidden]
        public virtual int Id { set; get; }

        [Title, MemberOrder(10), DisplayName("Estudio")]
        public virtual String Nombre { set; get; }

        [Hidden,Disabled, DisplayName("Fecha Modificacion")]
        public virtual DateTime ModifiedDate { get; set; }

        #endregion


        public string IconName()
        {
            return "books.png";
        }

        #region AsignaturaExterna (collection)
        private ICollection<AsignaturaExterna> _AsignaturaExterna = new List<AsignaturaExterna>();

        [DisplayName("Asignaturas")]
        public virtual ICollection<AsignaturaExterna> AsignaturaExterna
        {
            get
            {
                return _AsignaturaExterna;
            }
            set
            {
                _AsignaturaExterna = value;
            }
        }

        [DisplayName("EliminarAsignatura")]
        public virtual void RemoveFromAsignaturaExterna(AsignaturaExterna value)
        {
            if (_AsignaturaExterna.Contains(value))
            {
                _AsignaturaExterna.Remove(value);
            }
        }

        public IList<AsignaturaExterna> Choices0RemoveFromAsignaturaExterna()
        {
            return _AsignaturaExterna.ToList();
        }

        public virtual AsignaturaExterna NuevaAsignatura() {
            AsignaturaExterna asig = Container.NewTransientInstance<AsignaturaExterna>();
            asig.Estudio = this;
            return asig;
        }
        
        #endregion

        [Disabled, DisplayName("Centro de Estudios")]
        public virtual CentroEstudioExterno CentroEstudioExterno { get; set; }

        //#region Comentario (collection)
        //private ICollection<Comentario> _Comentario = new List<Comentario>();

        //public virtual ICollection<Comentario> Comentario
        //{
        //    get
        //    {
        //        return _Comentario;
        //    }
        //    set
        //    {
        //        _Comentario = value;
        //    }
        //}

        //[DisplayName("Eliminar Comentario")]
        //public void RemoveFromComentario(Comentario value)
        //{
        //    if (_Comentario.Contains(value))
        //    {
        //        _Comentario.Remove(value);
        //    }
        //}

        //public IList<Comentario> Choices0RemoveFromComentario()
        //{
        //    return _Comentario.ToList();
        //}
        //#endregion




        [Hidden]
        protected override void SetModifiedDate()
        {
            ModifiedDate = DateTime.Now;
        }
    }
}
